Although desktop and supercomputers have continued to increase in speed, there seems to be an insatiable need for even more computing resources. Applications that fold genes, calculate weather, or perform other sophisticated calculations consume tremendous amounts of computing resources. Special purpose supercomputing centers may employ thousands of nodes that may work together to solve complex problems. Some programs allow desktops that are not currently being used to be assimilated via the Internet into solving problems. Instead of trending to solving problems on a single computer because of its increased processing speed or a single supercomputing center, the increase in performance of computers as well as the global connectivity has provided a tremendous opportunity to bring worldwide computing resources to bear on solving incredibly challenging problems.